Camera HAL 开发环境 · 30 章

📘 从零搭建 实战
🧩 点击卡片跳转对应章节 · 友好色系
01 Camera HAL概述
  • 什么是HAL
  • Android相机架构
  • 职责与接口
02开发环境总览
  • 硬件/软件清单
  • 工具链
  • 流程概览
03Ubuntu安装
  • 虚拟机vs双系统
  • 20.04 LTS
  • 基础配置
04基础开发工具
  • Git/Repo
  • Vim/SSH
  • Samba配置
05Android源码下载
  • 配置Repo
  • 初始化仓库
  • 同步AOSP
06源码目录结构
  • 顶层目录
  • vendor/device
  • hardware详解
07Camera HAL源码位置
  • hardware/libhardware
  • interfaces
  • vendor/qcom
08搭建编译环境
  • 安装JDK
  • 必要库文件
  • 编译缓存
09编译Android系统
  • lunch选择
  • make命令
  • 单模块编译
10编译Camera HAL模块
  • mmm命令
  • mma命令
  • 编译特定模块
11生成的文件与输出
  • 编译产物
  • out目录
  • HAL so定位
12刷机与验证
  • fastboot刷机
  • adb验证
  • HAL加载确认
13Camera HAL框架详解
  • HAL3 vs HAL1
  • camera_module_t
  • camera_device_t
14HAL模块加载流程
  • hw_get_module
  • HAL_MODULE_INFO_SYM
  • 动态库加载
15打开Camera设备
  • open_legacy vs open
  • camera_device_open
  • 初始化参数
16预览流实现
  • configure_streams
  • process_request
  • preview buffer
17拍照流实现
  • capture request
  • capture result
  • JPEG编码
18元数据处理
  • CameraMetadata
  • 静态/动态元数据
  • 请求元数据
19Buffer管理机制
  • Gralloc分配
  • BufferQueue
  • HAL与Framework流转
20调试与日志
  • logcat使用
  • HAL层日志
  • systrace/perfetto
21常见编译错误
  • 头文件找不到
  • 链接错误
  • undefined reference
22模拟器环境搭建
  • Android Emulator
  • Cuttlefish
  • 虚拟Camera
23V4L2驱动基础
  • Video for Linux 2
  • ioctl调用
  • v4l2_subdev
24传感器驱动对接
  • I2C配置
  • MIPI CSI
  • 时钟与电源
25ISP图像信号处理器
  • ISP Pipeline
  • 3A算法
  • HAL与ISP交互
26HAL性能优化
  • 减少延迟
  • 提高帧率
  • 多线程设计
27兼容性测试
  • CTS/VTS
  • Camera ITS
  • 常见失败修复
28多Camera支持
  • 双摄/三摄
  • 逻辑与物理Camera
  • 同步融合
29HAL安全与权限
  • SELinux策略
  • Camera权限
  • 进程隔离
30实战项目
  • 简易HAL模块
  • 模拟Sensor
  • 集成AOSP验证